Create the base

Add just the base class logic, think more about cache & request tiemout.