field read/write opt moved from unsafe to runtime