update build system. add some more documentation