added component fading effects + new hide method