refactor continues: media and panel widgets