add reference type; complete VARargument;