extra functions added