(grafted from abc1ca0af1 )
abc1ca0af1
- write extentive unit tests (maybe this already exist in other projects) - the level2 functions still have to be implemented