support custom commands