An implementation of repository pattern that can connect with any ORM