something passing, but not ideal (arigo)
a better way - pass function to be called as self (argio)
fix test