adding initial core class definitions