todo working
need to finish the child add listener