in the search for a better plugin pattern