Major refactor... This was incompatible (-> fucked) from the start.

Still buggy at this point, will debug later.