add arguments for optimzation