Updating grossly to full featured version

Updating grossly to full featured version