clean code and ruel layer