Refactored to use spring construction