Refactored to add initial support for Screens.