New data structure

@justinvdm Do you have an idea of how we should handle failures like this... throw an exception or maybe `$emit` an AngularJS event?