refractor inprogress
merged