math library
some structs