add ArgumentError class
clean up