* Refactored around a bit some more