started full rewrite of old approach (conque not flexible enough)