Now support default values to reduce runtime errors; much cleaner user signature