upadted full functions