different prototype functions seem to share the same data members