implement required fields