added builder objects.
and some performance tweaks