add song module and tests