avoid duplicate checking