improve hide func