redesigning function arguements