added Source class