Major redesign. AngularJS integration.