Added some explanatory comments and TODOs
Factored Labels into a single Datatype