merged new features with unsafe branch