Add versioning using URI

- Using namespaces
- Extracting common methods for controller
- Using integration tests