One step further, though it still doesn't compile