add optional operations