Add the required core files
Add the definitions of the types/libraries

Also add a couple of tests