implemented show and hide