Alpha implementation of project tree

An alpha implementation of project tree, FIXME tags mark where more work required has been identified.