separated model from presentation