add visibility_level as an optional parameter