finish up registration getter and some refactoring