allowing parameters to be optional