applied cmake into State Pattern