More generic CommandReader