Refactor/screen module

Refactored PM::ScreenModule which was pretty gnarly. Still have more to do there, but it's looking better already.