Add native type annotation
Refactor about object and search recursive