Sync upstream and my fork

I messed up my fork when doing some experiemntation... so sync back