Refactored state pattern some arguments not needed