option.since implementation

Implementation for #46
can you put this in its own file?