#71 refactoring finished