added argcount check into eval()
removed many redundant argcount checking