the only extra library it uses is math