trimmed down some, moved stuff to ->source_args