add funcational test