this compiles, but I don't really understand