added second factor parameter