modified to clarify visibility