Itssodifficulttosimplifythiscode