requires rvm