Refactor Metadata Command classes

We should also refactor the `MetadataCommand` classes and split
up the file as well as move the code to an own subdir.

refer #82