change API, use keep to keep master untouched