in PDRStockHolding.h
#import <Foundation/Foundation.h>
@interface PDRStockHolding : NSObject
@property (nonatomic) float purchaseSharePrice;
@property (nonatomic) float currentSharePrice;
@property (nonatomic) int numberOfShares;
- (float)costInDollars; //purchaseSharePrice * number of shares
- (float)valueInDollars; //currentSharePrice * numberOfShares
@endin PDRStockHolding.M
[code]#import “PDRStockHolding.h”
@implementation PDRStockHolding
@synthesize purchaseSharePrice;
@synthesize numberOfShares;
@synthesize currentSharePrice;
- 
(float)costInDollars{ 
 float cost = purchaseSharePrice * numberOfShares;
 return cost;
 }
- 
(float)valueInDollars{ 
 float value = currentSharePrice * numberOfShares;
 return value;
 }
 @end
 [/code]
and the hard part in main.m
[code]#import <Foundation/Foundation.h>
#import “PDRStockHolding.h”
int main(int argc, const char * argv[]) {
@autoreleasepool {
    NSMutableArray *holdings = [[NSMutableArray alloc] init];
    
    
    PDRStockHolding *one = [[PDRStockHolding alloc]init];
    one.purchaseSharePrice = 2.30;
    one.currentSharePrice = 4.50;
    one.numberOfShares = 40;
    [holdings addObject:one];
    
    PDRStockHolding *two = [[PDRStockHolding alloc]init];
    two.purchaseSharePrice = 12.19;
    two.currentSharePrice = 10.56;
    two.numberOfShares = 90;
    [holdings addObject:two];
    
    PDRStockHolding *three = [[PDRStockHolding alloc] init];
    three.purchaseSharePrice = 45.10;
    three.currentSharePrice = 49.51;
    three.numberOfShares = 210;
    [holdings addObject:three];
    
    for(PDRStockHolding *number in holdings) {
        NSLog(@"current Price is %f, purchased at %f and %i number of shares", [number currentSharePrice], [number purchaseSharePrice], [number numberOfShares] );
    }
   
    
}
return 0;
}
[/code] very interesting I have to say that I had to think things over to really understand the challenge I was doing. especially the hardest part for me must have been the iterating part, and how to include all the values of my objects.