[issue 20] refactored how register works, minor naming changes as well