compiles as it should