Improve documentation; exception managment; unittests and some fine tuning of classes.