add hide func optimize