extends optimization