added a somewhat unique identifier function