use self evaluate to abstract number and string