detailed design

class detailed design