compiles clean, still doesn't run