base the work need and learn