use opts and args methods, not instance variables