added four functions