abstract song into a new module