add specification pattern