updates, restructuring, and documentation