refactor to abstract where data is sourced from [#12]