fix state catch-error
direct field access
add RWS