sure ... this function has more than 200 lines ... I fix it per partes when touching it. I don't want to refactore it whole now ... it can break to many things