fix gcc warning
correct non matching #ifndef #define
remove multiple declaration
Merge pull request #15.
Merge pull request #16
Merge remote-tracking branch 'upstream/master'