Adding Service Layer Implementation

Separate controller logic into two separated layers:
1. Controller layer - to handle http transport layer logic
2. Service layer - to handle business logic