Add StatePattern