make code structure modular