further work, still doesn't compile