vertical projections

more minor memory optimizations