add parameter extraction function