implement ffiex cacher callback
add test for cacher and more