Added annotations and Dependency Injection mechanism