added core classes and basic API support