Adding custom exception type, for meaningful exception handling and message to user (@see PmBuilder.build())
Modified to use root from PMBuilder. Class was reproducing logic found there, and is conconcerned with same directory. Relying on String.format() rather than Strign concatenation mostly for readability. I think this makes the relation between the two paths more clear
Removing un-needed Exception handling in the map() method. Adding support for PMBuilderException
Adding a little credit for my self