abstract away the required params and minor fixes