code compiles without waringins (-Wall)