Some improvements, but not done yet.