do not call sign() directly
adding comments, returning better message on unexpected error