abstract learning