refactoring and new commands

discussion is needed