make __array_start available only when RVM is loaded, update #1851
make _first and _second local varibales only where they are needed, closes #1851