refactor: dynamic type.