the pro function