+1 on distinct commits. My plan is to check this in after this round of comments. and then add more commits on top of it.

Yes Maps are not implemented. We don't currently need them, so I am ignoring them for now, but if you want to take a stab at it it would be appreciated.