merging latest changes from core