Fix #8: abstract base constructor