redo with proper approach