refac part 1
refactor 2
sync