working on categories oo model