diff --git a/src/function.jl b/src/function.jl
index 19865f6b0e80d976de74bcf3abb2f1cd67cef4ae..cd03e9eba90e45b5121664ac72a66bdecbb25fc4 100644
--- a/src/function.jl
+++ b/src/function.jl
@@ -109,6 +109,12 @@ Base.show(io::IO, ::MIME"text/plain", f::FeFunction) =
 interpolate!(dst::FeFunction, expr::Function; params...) =
     interpolate!(dst, dst.space.element, expr; params...)
 
+# stack-allocated cell-local function
+# FIXME: unfinished, how to handle derivatives?
+struct FeCellFunction{Fe, S, Ld}
+    data::Ld # ldof -> data
+end
+
 
 myvec(x) = vec(x)
 myvec(x::Number) = x