Completely re-done .putData, splitting it into multiple methods.