moved STATIC_ASSERT to utils.h