removed union in favor of void* and cleaned up comment style
fixed merge conflicts