add song class and tests