implemented read-only mode