Yep. As discussed in the previous implementation PR. I just want the core functionality in without a minimal ripple effect through the code. Can we just create a separate issue for this refactoring to be tackled when all these core functional pieces are in?