massive refactor, controllers take txn instead of writer and request.
update example