Refactor, separate concerns