starting a big rewrite, things are not working:

getting rid of witness variables
eliminating p:o:T in favor of o:T