introduced plugins and rewrote song class (and more)