throw error when cant' find key instead of returning null
refactor to handle everything on a potential basis, rather than contact basis. This lets us easily handle multiple classes in UI and backend (though that's not yet supported); attribute revenue to different classes, set by-class growth targets, etc. Also, updated tests, improved error reporting.