better argument amount calculation