refactor(account): externalize state

TODO: username and events
chore(merge): new events