implemented visibility