pulling over more ui stuff into core module