added strict constructor
Refactored to use HackaMol::X::ExtensionRole
update synopsis and improve test coverage
tidy up examples
update version