refactor: refine type definition