Base implementation

Default values are missing for all properties, therefore they should all be `|null` or a strict constructor should be provided