please handle return value and thrown exceptions