add commands system to add abstraction
commands system close #1