native api first implementation