support primitive procedure, add let' form