add util functions