added missing methods, added exception