Loop and callbacks are quite hard to do but I agree