full refactor. see samples...
Merge branch 'develop'