main by parameter