added functional testing