sync branch and put all my changes here