seperatation of concerns: view layout and application logic