* move fix test fix lint fix test add more code fix lint better type infer ability * fix build * address comment