added javadocs and also addressed #5 - adding type-specific setters