Fix children events watching, tidy up code a bit