began adding helpful comments
extensive javadoc'ing, not yet finished