add optional in extend syntax