refactor the messy, messy less