needs hide fully implemented