now compiles cleanly