somewhat working FunctionCollection