add layer visibility component

also change directive names