Mappings

Picking up where #1374 (inadvertently) left off. Very WIP, definitely not ready for merge.
Curious about why using `component` instead of `this` in prototype method?