Added selection-event + refactored states/classes for simplicity