On Building Generalizable Learning Agents