useful functions added