solution cleaned up