update functional tests...then...implementation