it would be nice to have an ability to manage attributes/methods visibility by their usage - if attribute/method is only used internally and declared as public, then it's visibility would be changed to protected/private (inherited interface entities should honour parent's (or manually provided). Same also could be applied to unit's non object entities - functions/procedures, where only in unit used ones are removed from an interface