lots more refactoring and such
removes cached