rebased and added my changes back