add applicable() checks