state() should always return a string