now compiles under gcc