refactor code and design

refactored code, design(controllers, routes, naming conventions, etc.)