lots of updates and restructuring things