Refractored the Interface