refactored argument passing