fairly large reorg, trying to make this look like a real project