rule of zero
fail! -> panic!; error traits