some refactoring and cleaning up.