state manager
merge