code refactoring and restructuring...