terminal component framework