starting to refactor
x