all functions made