use ALIGN(x) instead of MM16 for variable alignment
msvc doesn't know what "inline" is