more flexible arguments