added some documentation and empty defaults