Feature/options source with decoration

DO NOT MERGE. FOR REVIEW ONLY.

@chaimsolomon This is how I would use the decorator pattern. Everything is object oriented in the serializer. This may need a little cleanup.