enforce Java 6
copy constructors & Comparable interface
Source.toString() method