undoing my previous abstraction. presenting each part as a widget seems more appropriate