changed: client-side function storage