playing with pointers to functions, the rest works however