Abstract: add companion object