refactored Funcs into private static methods