This project is used to decouple the interface with its implementations.