referenced composite reimplemented, updated tests, javadocs and constructors