implementing record