refactored tail recursive Fibonacci.calculate