core classes wip