all function working YAY!!!