android client refactor