Implementing clean architecture.