start reorganize class structure