add default value for visible
allow for opacity to be queried
mark getters const
default to more sane values