added unittests, documentation