clean up, more documentation