get rid of functools