Add AccountFactory and custom Exxception to make the application a little more robust