learning procedure