cleaned up object model a ton
documentation + code cleanup