Refactored with Media class to stop more and more parameters being added.