keep parallel array + map for ng-repeat, yuck
cleanup, change map to act as index