state pattern
communication to mark component