 		return rem?.value
 	}
 	
-	// MARK: - Get element
-	
+	// Returns a value at the index.
+	// Complexity: O(n)
 	public subscript(index: Int) -> Value? {
 		return nodeAt(index: index)?.value
 	}
 	
-	// MARK: - Private
+	// Convenience of use.
+	private typealias Node = ListNode<Value>
 	
-	private typealias Node = ListNode<Value>
+	// Linked list node structure.
 	private final class ListNode<Value> {
 		let value: Value
 		var next: Node?

		count += 1
	}
	
	@discardableResult public func insert(value: Value, at index: Int) -> Bool {
		if index < 0 || index > count { return false }
		if index == count {

		}
	}
	
	// Returns head of list.
	// Complexity: O(1)
	private var head: Node?
	
	// Returns tail of list.
	// Complexity: O(n)
	private var tail: Node? {
		return nodeAt(index: count - 1)
	}
	
	// Returns a value at the index.
	// Complexity: O(n)
	private func nodeAt(index: Int) -> Node? {
		if isEmpty { return nil }
		if index < 0 || index >= count { return nil }
