implementing screens and stuffs