refactor to use a partial