remove fd() func, use future replace later