break out generic fns to funderscore module