Separated callbacks for each type