optimise
merge stable into default