Added documentation and changed the way defaults work.