add documetation and tests