improvements, but still doesn't work