redesign and refaktoring