Added more optional arguments, less code, win win