Add prototypes for u16 support. Move impl class definitions out of header