massive refactor, going to ContentProvider and Fragments, in progress