separate view from models/controller