use stricter prototypes, fix warnings