A lot of improvements.

Added year and month properties.
Improved init logic.
Cleaned up a lot of code.