Moved logic to more abstract Content* types