added part on visibility and interfaces