much more documentation. and other stuff