     }
     
     /// All elements currently set, in order
-    public var loadedElements: [Element] {
-        return self.filter{ $0 != nil }.map{ $0! }
+    public var loadedElements: [T] {
+        return self.flatMap { $0 }
     }
     
     // MARK: Initializers


extension PagedArray : BidirectionalCollection {
    public typealias Index = Int
    public typealias _Element = Element?
    
    public var startIndex: Index { return 0 }
    public var endIndex: Index { return count }

    
    /// Accesses and sets elements for a given flat index position.
    /// Currently, setter can only be used to replace non-optional values.
    public subscript (position: Index) -> T? {
        get {
            let pageIndex = page(for: position)
            
