support maintainer as an optional argument