Backport 0.3 changes to 1.0

Backporting the 0.3 changes into 1.0