Refactored registers to remove circular dependency