passes the conditions