pull some macro into regular fns, yay