volume is between 0 and 7, refactor again