refactored argument conversion