rethinking plugin lifecycle and the way that external plugins can work. extracting good interface for the binder and the autobinding PlayerHater