comprehensive docs on contributing