working on class definitions