version 3, refactoring and defveloper comments