removed html5 required logic and added newInstance method