classes with construct