Extract a definition class

This simplifies the dictionary class a bit
by dividing up the responsibilities between
the two classes