Made something so beautiful it made me cry...State pattern