Refactored to use symbols instead of State class.