Refactor, limit visibilities