updated to make it work correctly and improve legibility, removed problematic callbacks, added error handling and made it possible to change years without switching models