use default args when not provided