Moved code for clean architecture based approach.