propogated remove and a little async magic :shipit: