seperate package for abstract classes