Re design the code structure to OOD