Custom providers [#6]

@malinkie for the merge.

@jessejlt FYI