deriving show eq for State