using fancy approximation