Added some documentation, default return value set to nil.