Reimplement functors definition