Initial Implementation.
Added comments.