Optimizations

Try to write it with lambdas and without them, Without them, you need to create a class, with contructor, one virtual function, data members and u need a member in another class to store this. With labdas, you need nothing else. Much more readable. 

std::function will be replaced, I forgot to create a task for it. #354