changed return value to object itself so it can be customized