design the class