variablize, somewhat
use better paramaters