This is not well done. I plan on implementing command events, but for that the code has to change a bit.