Understanding Model, View and Controller