updated documentation and added a new exception. updated exceptions and argument checks where appropriate.