added fib implementation