all functions added