todo for optimization