Uses AngularJS.