save an version to add signleton
no need to regard print as a ident