more improvements, still doesn't work