added some 'finals', refined javadocs