complete preliminary version without center of mass push back