Fully isolate the learn command into its own source file. (dm)