using unchecked exceptions. close #1