good example of complete infrastructure (repository, service, controller and views) for new customer entity.