Added JSR-305 annotations and applied final where appropriate