adding shape function and function space interface