Refactor services

Merged the development branch back to the trunk