add some more documentation and shuffle haddocks