Base implementation

Just decoupling the two actions completely. I'm fine with this approach if you don't feel like it needs changing.