Fully restructured to support builders for N and P separation