Added extension of AbstractDocumentPart to take care of positioning. Made changes to comments. Removed the use of implementation types instead of interfaces and calls to overridable methods in the constructors.