6.5.2013 first version
6.5.2013 to refactoring