add display state machine
different kind of ui