Added the source class
Removed a redundant parenthesis
Merged source_cu.hpp and source_cl.hpp into source.hpp using template