#13 improve to compile with wall