Crazy object model changes, documentation updates.

Hopefully results in better code.
Fully funcional menu.