refactor to use BaseInfo