Added documentation and some @Override annotations.