refactored new foreign stuff so that its easier to serialize and deserialize. and i think it's just cleaner.