implement hard reset