Initial commit. Some cleanin up/usability TODOs are still around.