move arg check to init()