add the ability for work to response as success/failure/halt
add lock
extract workunit value object.