Showing posts with label mobile app development. Show all posts
Showing posts with label mobile app development. Show all posts

Wednesday, July 16, 2014

A New Release for the Magic Application Platform



Ready for a Shiny New Magic App?

Magic Software has released Magic xpa 2.5, the new version of the application platform that readers of this blog have known and loved for a long, long time. In addition to the new version, a new Mobile Accelerator Framework has been unveiled.


The mobile accelerator framework includes capabilities for improved user experience design, an application panel for tile-based menus, a log-in screen generator, enhanced charting for mobile, Google maps integration for location based services, and an application audit trail utility.

As announced in today's press release: "The proven, code-free, metadata-based Magic xpa Application Platform provides an easy-to-use, highly-productive and cost-effective development and deployment environment that lets organizations and ISVs quickly create multi-channel mobile and desktop business apps. Mobile enhancements in the Magic xpa 2.5 release include:

Enriched User Experience: New form animation and color options, enhanced navigation features including native tab bars and navigation drawers, support for customized keyboards and additional native controls.

Greater Platform Extensibility: Streamlined integration between the Magic platform and native code lets developers add more native capabilities.

Improved Developer Productivity: Improved native integration environment makes developers more productive.
Push Notifications: Developers can add push notifications across iOS and Android devices.

Support of Additional Databases and Technologies: Compatible with latest database versions (e.g. Oracle 12) and technologies (e.g. message queuing services).

Magic is also introducing its Mobile Accelerator Framework that includes pre-built component-based development modules and best practices. The reusable components speed development and reduce resources required to create multi-platform mobile applications.

Magic Mobile Accelerator Framework contains standard components for a wide variety of important features, including: User Interface and Display, Navigation, Graphs and Charting, Location Services, Synchronization, Device and Application Auditing, and more. More information about Magic’s new Mobile Accelerator Framework can be found on the Magic website."

Wednesday, April 23, 2014

The Time-to-Market Advantage in Mobile Application Development

As a visit to Damnoen Saduak Floating Market of Thailand will confirm, time-to-market and distance-to-customer are distinct advantages in business. 

It is difficult to know which came first: the customers with their curiosity and pocketbooks or the merchants with their bamboo and palm hats and colorful produce, but they are certainly mutually drawn to one another. People do not come here because the prices are cheaper but rather because the produce is fresh, accessible and sold in a convenient and interesting way. In bygone days, the vendors would paddle their boats on the waterways buying, selling and trading fruits, vegetables and other goods all across Bangkok’s canal system.  The canals were convenient, the boats efficient and the coverage of the canals was pervasive across all of the city. Where am I going with this?

Today’s mobile networks are pervasive, mobile apps are interesting and they can get to customers first, right where they are.

When it comes time to build mobile apps that can reach customers, time-to-market has more to do with the ability to develop mobile apps that run on multiple device operating systems and integrate to back-end business transaction systems in an efficient and agile manner. Distance-to-customer is the advantage that mobile apps have because they reduce the transaction distance between you and your customer to zero. Your ability to sell to customers is no further than the palm of your customers’ hand.

But quite frankly time-to-market is often a disadvantage of mobile apps because of the long lead times required to develop mobile apps using native platform development tools. That’s why when we see a platform that claims to marry the advantages of rapid development techniques, pre-built integration solutions and a capability for cross-platform mobile smartphone and tablet deployment, we have to pay close attention. Faster time-to-market for mobile apps requires a smarter application platform.

 Most development approaches fall prey to the time-quality-cost triangle and suggest that you can choose only two of the three beneficial qualities: less time and more quality or less time and less money or more quality and less money. The prevailing wisdom suggests that you cannot have all three. But frankly this popular dilemma is based on the preconceived notion that all approaches require a fixed effort.

What Magic Software initiated in the 1980s with the notion of a rapid prototyping platform for creating business applications carries forward today into some fairly slick and sophisticated technology that still gets overlooked far too often by the mainstream computer programming community. The benefits of an application platform can be found in the fact that it breaks through the problem of fixed effort. Platforms have built-in solutions. They allow for very rapid results by leveraging common application development requirements in an underlying solution set or platform.

Daniel Coyle, author of The Talent Code says: “Baby steps are the royal road to skill.” As I have said before: “Regardless of whether you use agile or scrum project management methodologies, early and frequent results are essential. Too many projects are cancelled midstream simply because their progress is shrouded in mystery.” An application platform gets you to those early victories and propels you to frequent wins that will keep executive sponsors engaged to completion and asking for more.

Native development suffers in comparison to Magic xpa application platform development for a number of reasons. First. More tools are needed. This is not opinion, this is fact. With native development you need a server-side language and deployment methodology and a client-side language. Furthermore, the client-side languages are different: Objective-C, J2ME, J2SE, etc. Because of the extra effort required by these tools, more programmers are assigned to a mobile app development project. While  environmental complexity increases with native mobile development, the Magic paradigm of platform based metadata development remains constant: one tool for all requirements – server-side and multiple OS clients.

To understand the absolute significance of this, one needs to consider the COCOMO II Model of software estimation perfected at the USC Center for Software Engineering. (Go Trojans!) The COCOMO II model can be simplified as follows:

                      Effort = (Team) x (Tools) × (Complexity)(Process)

As you increase the number of programming languages needed (tools), effort increases. The concept is fairly simple. As you increase the number of developers (team), effort increases. And as you increase the functional requirements of the application to be delivered (Complexity), effort increases. The relationship between these three components of effort is factorial.

Those restaurants along the canals of the Damnoen Saduak Floating Market want their vegetables really fresh. For really fresh mobile apps, consider the Magic xpa Application Platform.


Wednesday, March 12, 2014

So you want to develop Mobile Apps with Magic xpa? Which app mode is best?

One of the great advantages of developing with Magic is the easy portability of your business logic to any client and server device supported by Magic’s future proof platform. When you decide to deploy on a mobile device, there are three primary options for developing your application so that it may be deployed on a mobile device. They are not all equal and careful consideration should be given, especially if you are considering an approach other than native. While these considerations have little to do with Magic, they do have a whole lot to do with the deployment mode itself. Since you may have to live with your decision for a long time. I suggest you think it through carefully and consult with Magic Professional Services for the best personal guidance. But in general, here are some key considerations:

Browser Apps. – A Browser app uses the mobile internet browser of the device. There are advantages to this method in that if you already have a browser application, it can be deployed readily. On the other hand, your application will not look like a native mobile application. You will also have limited, if any, access to the mobile device’s functionality, such as the camera. HTML5 browser apps use merge functionality and therefore the user interface development is not as automated with this approach. Main advantage: maximum portability. Primary disadvantages: Security, Cumbersome Development, limited third-party access to device features, unsettled protocol standards, non-native look and feel may seem strange to users.

Hybrid Apps. – The interface is a mixture of a native application, JavaScript and HTML5. As an example, you may be using a browser control to display a PDF or SharePoint Web Part but using routine Magic programming techniques to design the native UI features. In this case, you have also have full access to the local device features within the native portion of the app mashup but the browser control based portion is subject to the same limitations as browser apps. Advantage: Flexibility to use web features and extensibility of those features across devices. Disadvantages: Requires multiple skillsets, user interface may appear inconsistent, greater effort and planning required for building screens that mashup well. Advantages: Leverages the best of both worlds. With the right mix, an app can still have a native look and feel while using some non-native features. Best for apps that are mainly native but may need to leverage just one HTML5 frame or for apps that are fully HTML5 but need to meet the requirement of being deployed in a native container other than a browser.

Native Apps. – This is an app with a native mobile interface and full access to supported  device features such as camera, address book, GPS, etc. Native apps are generally regarded as more highly adopted by users. With Magic xpa, native apps are also the easiest to create and have the great advantage of being portable to all supported clients: BlackBerry, iOS, Android and Windows Phone. Advantage: Greater user satisfaction with true native look and feel, speed of development, multiple device and OS support. Disadvantages: For best results, a UI designer may recommend the additional effort of device specific designs. 

While your circumstances may dictate the choice of any of these mobile app types as being best for your situation, in general and when making the choice of mobile app deployment modes for Magic xpa mobile apps without pre-conditions it is recommended to develop native apps. 

Ready to learn more? Join us at the Magic Users Conference, June 2-4, 2014, in Huntington Beach, California, also known as Surf City USA

Thursday, December 27, 2012

Mobile App Development: 30 Days to App


Just when you thought the hype cycle for mobile apps had peaked, James Johnson reports that the super cool ecommerce platform “Fab managed to pull 56 percent of its Christmas day US revenue from mobile apps, a new single-day record for the e-commerce platform with a focus on designer items. The company also announced that its mobile apps accounted for 40 percent of European revenue on Christmas day, another Fab record.

Nevertheless, building mobile apps successfully requires an attention to a broad spectrum of needs within your business and not simply a single function. While it is true that mobile apps need to be narrowly focused, the portfolio of mobile apps in your company needs to address a broad range of requirements.

Dan Woods reports in Forbes that building mobile apps requires endurance and stick-to-it-iveness.  “Mobility is really a continuing program for addressing many needs over multiple years, typically with multiple apps.”

And despite the fact that experts are touting gamification, independent university research has determined that usable information and functionality trump entertainment and gaming value.
Indiana University reports that: “The study confirms that using branded mobile phone apps  increases a consumer's general interest in product categories and improves the attitude they may have toward the sponsoring brand. The researchers also found that mobile apps which are informational in nature or utilitarian were more likely to engage users than those where the app focused on entertainment or gaming.” This research finding may surprise people. But if you understand baseball, then you can understand this statistic. If the average hitter swings for the fences in every at bat, they are going to fail. It's easy to strike out when you are trying to force a home run. Informational and utilitarian apps are less exciting, but just like a single in baseball, they are fundamental to success. 

So if you are an IT department with a need to support a broad portfolio of mobile apps that provide usable functionality to business users, partners and customers, what can you do? That broad functionality already exists in your ERP, CRM and other enterprise software systems. How can you expose that business functionality reliably and securely in mobile apps that are flexible enough to grow with your business and your customers changing needs?

The Magic xpa Application Platform and Magic xpi Integration Platform work in tandem to provide a solution for enterprise mobility by allowing you to quickly generate mobile apps that integrate to enterprise software systems, ecommerce platforms and cloud apps by managing everything from API triggers and orchestration to cross-platform native mobile client interfaces. We offer our customers the laundry list of mobile apps below with a templated approach that allows us to promise 30 days to app from the time we have your spec, usually much faster. Not a generic app, but one that is customized and integrated. 

What is needed in every organization is a series of mobile apps that address common business issues and deliver the information and functionality demanded by your users. Magic Software’s application and business integration platforms provide enterprise IT departments the toolsets they need to address enterprise mobility requirements. Many IT departments prefer not to get involved in developing and integrating their own mobile apps, however. For these IT departments, the Magic Professional Services team can offer flexible and comprehensive professional services for mobile apps development.

As we talk to enterprise IT departments about the apps needed, a series of these mobile apps come to mind:

·         Mobile Commerceapps
·         Mobile StoreLocator apps
·         Mobile ordertracking apps
·         Mobile order tracking and shipment tracking apps
·         Mobile credit status and payments inquiry apps
·         Mobile field service management apps, including:
o   Mobile dispatch apps
o   Mobile routing apps
o   Mobile field service apps
o   Mobile customer service, repair, and technical support knowledge base apps
o   Mobile parts order and sales apps
o   Mobile asset tracking, inventory and management apps
o   Mobile field-based project management apps
·         Mobile inventory management apps
·         Mobile pick and pack apps
·         Mobile shipping apps
·         Mobile Time and Attendance workforce management apps
·         Mobile expense report management apps
·         Mobile workforce, HR and employee benefits apps
·         Mobile executive dashboard apps
·         Mobile approval processes apps
·         Mobile document management apps
·         Mobile purchase requisition and purchase order apps
·         Mobile Service and technical support center management apps

Here in Magic Software Americas, Eyal Karny, vice president of Professional Services explains that: “From the time we have identified the business requirements of a discrete mobile business application, we can build the mobile app, integrate it to back end systems, test it and present it for final user acceptance testing (UAT) quite easily within 30 days and usually much sooner. Mobile app development is ideal for agile and SCRUM development approaches because the apps are relatively narrow in focus. Having a common architecture for back-end integration and cross-platform deployment is amazing.” For additional information download “How to Realize the Vision of Enterprise Mobility.” 

Friday, September 21, 2012

Maps Fiasco: Is Apple Having A Bad Hair Day?




Apple has faced a firestorm of criticism over its poorly executed introduction of Apple iOS 6 maps as a replacement for Google Maps. Pushing out a friendly competitor is classic Apple behavior reminiscent of their rejection of Adobe Flash. If the maps battle ended today, Google would be the clear winner. But it remains unclear whether Apple or Google will triumph in the map wars in the long run. I anticipate either a long term standoff fueled by Apple’s stubborn unwillingness to see a clearly superior Google technology continue to succeed on their platform or  Apple will find a way to become less proprietary and allow Google maps a role in a future iOS version. For now, there course is fairly well set.

The problems with Apple maps in many consumers’ minds are simply that they are not Google maps. Google’s brand is well respected even among iPhone users. But to compound these problems, the maps are simply being ravaged in the media for a long list of errors, glitches and mis-categorizations.

Meanwhile, Apple has lost a pair of rulings in German court against Samsung and Motorola Mobility in its patent infringement claims. The patent dispute over touch screen technology favoring Motorola Mobility and Samsung could have a ripple effect in several other related cases around the globe.

While all of this is clearly bad news for Apple, one cannot help but wonder if it is nothing more than a bad hair day for Apple. They have survived other fiascos in the past with bad antennas, overheating tablets and the like. One suspects that they will find a way to deal with it.
Google has quite admirably taken the high road, stating that they want to make Google maps available for everyone on all platforms. Although one can’t help but feel that they are gloating over all the negative publicity aimed at Apple.

So what’s all the fuss about? One of the most humorous mistakes is an Irish rural estate named “airfield” that has been represented by apple on the map with an airplane icon to indicate an airport. This prompted the Irish Justice Minister Alan Shatter to comment: “I know on occasion mistakes can be made and I am surprised to discover that Airfield, which is in the centre of my constituency in Dundrum, has, in Apple’s new operating system iOS 6 maps application, been designated with the image of an aircraft.”

Aside from the errors, which are just comical, the Apple maps lack some of Google Maps most popular features, such as public transit directions, useful traffic data and street level view images.

What is an app developer to make of all this brouhaha? My takeaway is that the competition between Android and Apple is likely to continue long into the future. As a result, the apps market will remain fragmented between these two giants as well as Windows and BlackBerry. Multi-platform mobile apps development solutions are going to be needed for a long time. Apple doesn’t have any problems that can’t be cured with a good comb. 

Friday, September 7, 2012

Celebrate iOS 6 for iPhone and iPAD




For iPhone and iPAD app developers iOS 6 will lead to some interesting possibilities for future apps. Developers can access a number of new capabilities at the OS level including Maps, Facebook integration, Passbook, Reminders, new features with In-App Purchase, new camera APIs, and more.

The Magic Application Platform support and functionality for these new capabilities has yet to be announced nor has there been an indication of much of it works out of the box. But developers can hope for new capabilities from among those now supported by the iOS platform:

Maps. The war between Google and Apple continues with the  new Maps engines built into the OS and accessible to apps. The new Map Kit provides developer access to a different kind of more visually aesthetic cartography and interactivity. This makes it easier to build things like routing apps for transportation management systems.

FaceBook. Integration methods to FaceBook are now supported at the OS level. It will be interesting to see if this truly adds value or just provides Apple more say over how far FaceBook creeps onto their devices or both. It seems like the support for single sign-on will be a plus however.
One of the biggest problems facing users is the plethora of apps, tickets, passes, gift cards and loyalty programs residing on their phones. Apple’s plan is to simplify access through a Passbook including accessibility to the Passbook via apps, email and the web.


Reminders. There will now be an iOS 6 supported app called Reminders that provides a central repository events and reminders with control over properties such as due dates, priority, and location based alerts.

In-App Purchase. Apple has added improved in-app purchase and in-app content purchasing, including blocking recent widely publicized hacks that exposed in-app content to free access even when the developer intended the content to be purchased through the Apple Store.


Camera. Apps will be able to control the camera’s advanced features such as focus, exposure and region-of-interest. Face-recognition APIs and hardware enabled video stabilization will also be supported. New APIs let you control focus, exposure, and region of interest. You can also access and display faces with face detection APIs, and leverage hardware-enabled video stabilization.

 

Other.  iOS 6 will also support apps that want to do in-app Bluetooth pairing, audio and video sampling, rich text on labels and text fields, and in-app access to Game Center features like multi-player settings.

 

How much of this should or will be supported for Magic xpa developers remains to be seen, but its nice to see Apple moving in a positive direction with all these improvements.



Wednesday, May 16, 2012

What is a mobile enterprise application platform (MEAP)?



What is a mobile enterprise application platform (MEAP)?

MEAP, n., mobile enterprise application platform, an integrated development and deployment environment allowing for a single basis of development for multiple native client experiences across a variety of smartphones. 

Gartner says that: "A Mobile Enterprise Application Platform (MEAP) is a development and deployment framework that provides tools for client, server and middleware for mobile. Targeting any mobile application on any device, ranging from a smartphone to a tablet;  multichannel and offline capabilities.  Best for companies that wish to deploy multiple applications on a single infrastructure, scaled to the size of their current mobile offering and available in an online and offline mode."

Ideally, a MEAP provides a unitary approach to the development and deployment of software for smartphones and tablets, i.e. mobile apps.  Without a MEAP, the development effort grows exponentially and many enterprises have already wasted millions of dollars only to discover how difficult it is to develop for multiple, changing target mobile platforms.

As Jones et. al. put it: “Take for example a small apps company developing for iOS, Android and Windows Phone 7. They would have to employ three teams of developers, as often, skillsets don’t mix. They would have to maintain three different codebases, and synchronize feature additions and bug fixes across the three. This is a daunting challenge, and one reason why many apps are launched across stores with months of delay. Furthermore, quality and design consistency will vary when multiple developer teams are involved, and especially when the development for a new platform is outsourced to a third party. Support costs are also difficult to contain when developing for multiple platforms, as developer documentation needs to be built for three platforms, as does the internal customer support documentation.” (Jones, et. Al., VisionMobile: The Clash of the Ecosystems Report, February 2012, VisionMobile).

A MEAP provides an enterprise IT team with  way to leverage a singles skillset – development capabilities in the MEAP language or paradigm – and still have the ability, perhaps for the first time, to produce mobile apps across a wide variety of devices: iPhone, Android, BlackBerry, Windows Phone, etc.

While it may not be true that a consensus has formed around the idea that a MEAP is the only way to viably develop and deploy enterprise mobile apps for mobile devices, a significant community coalition is forming around this approach. As CIO.com states: "Consumerization of IT" may be an overused phrase, but it is by no means a fad. Workers nationwide are coming to expect that personal devices will connect to corporate networks.”  So the pressure is clearly being placed on IT departments to create mobile apps that run on a variety of devices. It is important that IT decision makers divorce themselves from their own religious zeal about their own favorite mobile platform and realize that we live in a pluralistic society, so to speak, when it comes to mobile devices. In today’s modern and technologically divergent world it is impolite to try to impose one’s own mobile device bias on another.

MEAPs are not immune to the debate over HTML5 vs native. Even a mobile platform such as Magic Software’s application platform which supports both HTML5 merge and native deployment via specific native RIA clients on each platform is finding itself stressed to take sides in the HTML5 debate.

As Jones et. al. state: “The perennial question for many developers is whether to use a web-browser approach to deploying mobile apps, or whether to create native applications. Web apps provide a large addressable market, at the cost of web-only distribution and a comparatively shallow experience. Native apps allow for much deeper device integration and experiences, but at the cost of a platform-specific addressable market.” (Jones, et. Al., VisionMobile The Clash of the Ecosystems Report, February 2012, VisionMobile).

But Krebs and Klein are less ambiguous with their opinion: “However, for enterprises looking to develop sophisticated mobile B2B and B2E applications across a variety of mobile platforms to a large number of users leveraging a MEAP currently represents the most viable option.” (Krebs & Klein, Native & HTML5 Mobile Apps: Not an either or, but a where and when…, February 2012, VDC Research.)

This bias against HTML5 is understandable. In recent compatibility tests, HTML5 was found to be less than a third compatible with the Windows Phone 7.5 Mango browser.  HTML5 was closest to being compatible with the Firefox Mobile 10 browser and even then it was barely two-thirds compatible.  

Compliance fragmentation is not without cost. “The result of this “compliance fragmentation” is that web app developers have to spend copious time and resources in cross-optimising their web apps for the major smartphone platforms. Perhaps most notable is the case of Assanka, makers of the Financial Times popular HTML5 app, who took 24 man months to create the news reader HTML5 application for the iPad, and another 12 man months to port that same application to Android.”  (Jones, et. Al., VisionMobile The Clash of the Ecosystems Report, February 2012, VisionMobile).

And all of these technical fragmentation issues are occurring even as GUI standards are shifting; Business Processes are being “unbundled”; and Business Apps are being designed to compete for attention in the “attention economy.”  In short, expectations are at an all-time high while standardization seems to be at its lowest point ever.

To overcome the lack of standards, enterprises need a shortcut.  “MEAPs are perhaps best positioned for enterprises looking to develop sophisticated enterprise-grade mobile applications that leverage multiple data sources scaled across various devices and OS platforms and are offered to a multitude of employees.”  (Krebs & Klein, Native & HTML5 Mobile Apps: Not an either or, but a where and when…, February 2012, VDC Research.)
Jones et. al. concede:  “The cross-platform tools market is in a state of abundant developer volatility. Comparing the CPTs developers are currently using vs. planning to use or abandoning, we see continual flux, as developers try a tool, and then churn to a different one. This is a market with no clear winners or losers. It’s a market where there is little developer loyalty, and perceptions are still being formed. This is a great time for wellfunded vendors to establish a beachhead of developer marketing and inch themselves apart in terms of mindshare.”  (Jones, et. Al., VisionMobile The Clash of the Ecosystems Report, February 2012, VisionMobile).

Magic Software (NASDAQ:MGIC) is fortunate in that it is one of the largest MEAP vendors in the market and the only entrant with a pure-play attitude, well established and scalable broker technology, and global reach.

Deploying apps from Magic Software’s application platform is highly flexible. All of the platform-specific options for app deployment are supported by Magic Software including vendor app stores. Magic apps can be launched from the home screen in iOS or the app drawer on Android devices. Magic provides an amazingly mature and well-established WYSIWYG drag-and-drop, form-based environment with table-driven settings used to define the business logic.

As the mobile enterprise application platform or MEAP approach gains favor amongst a growing number of large and midsize enterprise IT departments, Magic Software will benefit from the lion’s share of the new business being generated for MEAP platforms. MEAP is a mobile app development concept that must be taken seriously in today’s era of cost-conscious IT spending amidst rising consumer and business expectations.


Additional important concepts:

Monday, October 24, 2011

Enterprise Mobile Mashup Delivers Actionable Information


It’s one thing to be connected via your mobile to relevant information 24/7 and it is quite another to be able to do anything about it. The difference between information and action is the difference between email and apps. On the other hand, action without proper access to information can be dangerous. The solution: enterprise mobile mashups.

As David Akka, Managing Director of Magic Software Enterprises UK points out: “Enterprise Mashup is not something new. Enterprise Mashup is a concept that has been used by many, many enterprises to try to bring information from multiple systems into one coherent view. If you look at the consumer market, for example, estate agents, it’s easy to take information from a property database put it on Google Maps and take information from a police database and put it on the same map in order to present some sort of information to a future purchaser. 

“ The whole concept of that actually has started to take off with mobile devices,” says Akka, eagerly pointing out why mobile devices are so important to business today. “Gartner basically predicts that 50% of the workforce by the end of 2013 will use some sort of mobile device. There’s a big argument whether desktops are dead whether mobile devices will overtake them. It’s not really relevant for this point. The point is that on a mobile device the attention span of the user reduces significantly from about 2-3 minutes to about 1 minute.”

Since the mobile user may be paying attention for a shorter period of time, they urgently need accurate data streaming to their device and the ability to act on that information by providing an approval, submitting an order, updating location, etc. Enterprise mobile mashup requires the "round trip capabilities" to pull information from enterprise systems, display information in mobile apps, take action from the mobile device and update the backend systems. And with user preferences and loyalties to a wide variety of devices -- BlackBerry, Android, iPhone and Windows Mobile -- there is a need to provide enterprise mobile mashup via cross-platform, cross-device mobile enterprise application platforms that allow core application logic to be used on any mobile smartphone.

David Akka’s excellent interview on Computing.co.uk not only discusses the possibilities but also demonstrates the smarter approach that Magic Software’s iBOLT Integration Platform and uniPaaS Application Platform take in creating enterprise mobile mashup with backend systems such as SAP, Salesforce, Oracle, PeopleSoft, JD Edwards and so on.