Partly private

This should fix #2 and add a lot more flexibility / options.
Also it's written by a beginner and should be tested.