included math.h for removing warning