Agent Based Learning