#import <Foundation/Foundation.h>

@interface BankAccount : NSObject
@property (copy) NSString *name;
@property (copy) NSDecimalNumber *balance;
- (id)initWithName:(NSString *)name;
- (id)initWithBalance:(NSDecimalNumber *)balance;
- (id)initWithName:(NSString *)name balance:(NSDecimalNumber *)balance __attribute__((objc_designated_initializer));
@end

@implementation BankAccount

- (id)initWithName:(NSString *)name {
    return [self initWithName:name balance:[NSDecimalNumber zero]];
}

- (id)initWithName:(NSString *)name balance:(NSDecimalNumber *)balance {
    if ((self = [super init])) {
        self.name = name;
        self.balance = balance;
    }
    return self;
}

- (id)initWithBalance:(NSDecimalNumber *)balance {
    if ((self = [super init])) {
        self.name = NSLocalizedString(@"Anonymous", nil);
        self.balance = balance;
    }
    return self;
}

@end

int main(int argc, char *argv[]) {
	@autoreleasepool {
		
	}
}