Added new implementations from master branch