try explaining more of this stuff
a bit more documentation