we might want to consider the fast_dot here.