UI: only init gl modules when needed, optimize tests

Slight refactoring around improving and cleaning up tests
UI: split tests along module lines
UI: slight test refactoring, expand tests