necessary parts re-added