Refactor a bit the code and add a setter for the "source" property. #1