Rejigging internal model and seperated out a response provider behind an interface