factor; c2prealloc compiles but it is a mess right now ...