second pass does some refactoring #63