Added IPortableData. Refactoring.

Signed-off-by: King Lemming <kinglemming@gmail.com>