First pass at GUI shell