states can be constructed from symbol, string or char