merge from opensource