Add ability to override API in options. Fix broken opts extending (ensure we never add members to defaults object)