moved interfaces to a package called intefaces, wow such logic