either public functions