remove warnings, and add -Wall