Updated copyrights.
Refactored.