added all functions