renamed abstract to default for clarity