added screen and more OOP style