allow self in val