Refactored DAO to use Strategy pattern
TODO: Need to revisit on how to use require on IRepository
resolved conflicts