changed RedSourcer to only hold path and perform IO
added tests for scanner