refactor parameter extraction