from some reading I'm told this method is much faster