Some refactor, comments.
Made one method using LINQ-expressions.