added everything, I have not extensively tested this version
added everything, I have not extensively tested this version