refactor with FunSuite