added approximation stuff