first version, readonly support