trying to do separate compilation with fn ptrs. still not really working. giving up for now.