finish removing output_t and middle_t from output_options. now all access between middle and output happen directly. this should make pulling them apart easier (less objects to touch). note that this code is not very nice but its a temporary (possibly even lateral) step towards getting mutiple backends (ie decoupling middle and output)