initial support for returning read only objects as cheap struct