refactor: custom command use a non parameter constructor and a reentrant init function
refactor: group command use a non parameter constructor and a reentrant init function