Opus is organized as a set of ``Opus packages''. Each Opus package encapsulates a set of functionality in a structure defined by a set of required directories and files. This chapter describes main objects provided by the Opus package called opus_core. This package is intended to provide a fairly general functionality, including data representation and manipulation, various models for use in different domains, support for specification of models, or definition of variables. The package by itself does not provide a self-contained system of configured models that would run after pressing a button. It is rather a collection of tools for building other opus packages.