it compiles, and sort of works