reinstantiated, got the argument checking working better