Refactored Data object implementation a bit, should bring down complexity.