implemented plist model