some work on hard sync
using valueOf instead of codegen