finalized prototype before merge