initial versions of these functions