Added 'before' clause and mustNotBeNull option