Generally trying to get in the habit of making constructors do as little as possible. And doing anything that's likely to break later. Makes testing/mocking easier, and pushes potential error/exceptions later.

Though, in this particular case, that's kind of overkill since parse() can handle data=None.
I'll update.