A clean architecture implementation