Fixed the weird constructor problems: same old trying to use an unintialized pointer error implemented all the placement functions important decision: for these placement methods: first assume no rotation, then apply proper rotation afterwards in essence this means, objects have absolute tops, bottoms, lefts, rights, fronts, regardless of orientation. so putAbove on a table always refers to the table top, even if that table happens to be upside down. in that case, the object actually gets put "under" the table. perhaps this will change, but i think this type of positioning makes sense, particularly in reference to doors, tables, chairs, and similar objects. TODO: * comments * find out where to get size information * handling containers, putting objects in them