Stop relying on self being set correctly - this is tricky due to closures.