Separated model and view. Is this the right way?