1. Separated out model
2. Replaced html with haml