compliance with strict flags: -ansi -pedantic -Wall