satisfy C99, -Wextra, -pedantic