making component rules private