CANVAS-265, completed a compromise design that will suffice if we don't ...

completed a compromise design that will suffice if we don't have time to revisit this until the next sprint. Adds to, does not replace the previous commit.

https://jira.media.berkeley.edu/jira/browse/CANVAS-265