adding multithreading, internet permission and train schedule access