Function pointers can be very useful, but cause problems when you want to
load and save classes containing them. These methods create a database of function
pointers mapped to unique identifiers which can be used to load and save these pointers
safely.