Futher segregated files. Added inline to definitions of template specializations to avoid duplicate compile errros