Final with all function working