factory methods for constructors, var args for adders