added command factory