shouldn't the instance "self" be the first argument?