more or less implemented middle part of bottom to top propagation