implement visibility correctly