add more functional tests