Hooray angular!

Split things up into components. Still not quite sure how to update the
scope when things change...