Refactor, mostly adding lenses and helpers