Initial refactor of show hide component