refactoring builtin_cons