changes and add --output flag