Moved some functionality to song.c