1. `PluginX` classes have long constructions and no setter methods: it's difficult to just set the data you need in plugins or unit tests. 2. A lot of default implementations are missing (e.g. catalog POJO).