panel as class component, improved ui