core class interface