annotation fixes
add more abstraction
update dependencies
refactor building up workflow object