Refactor Register methods