Complete rewrite of the methods
Merge branch 'develop'