dynamically parse args