Some improvements, but not working yet