moved all static_asserts into .cpp files,
some minor changes