Add State pattern demo