remove semicolon at macro end
use assert
remove useless modulo
add vocab test