added useful_math