refactor fib a bit