common: move low level wrapper objects into core.h