replace faile with die!()