use named arguments to simplify & DRY up some return statements