Pulled out lots of HTML into directives