auto layout and clean code