more functions, more tests