Updated plugin design pattern. Also implemented customizable messages, as well as predefined rules and the ability for custom callback functions.