It blocks now take a function as an argument
Rerrange code, make example private