added state_machine gem.