initial version without real tests. unit tests will be added soon.