adding ArgumentError class, better for testing purposes