function use is protected