add layer visibility component
also change directive names