Add the core library

The first version of this library