Put back function pointers... all need to be tested...