refactor: refine type definitions