when and self