Still more refactoring for 1.7.2 DO NOT USE... yet