Made use of ng-options and custom filters; code now 1/5th size