refactor with a better name