implement @ReadOnly to fix #24