Third question's answer, compiles OK, not tested