Added Service Layer, and service unit tests