added visible prop