Refactored to viewholder pattern, simpler code, some other stuff.