Merge pull request #20 from Negusbuk/master

various fixes and new implementations