improve CommandGetter and FileReaderAndWriter