fixed a few compiler warnings about vasprint, and shadowed variables
reorganized the header file and the source file in order to hide functions and structures that the end user doesn't need to worry about