Make Rafters::Source a class instead of module
Refactor component a bit and re-do the specs for it