learn: procedures