Refactored Register