merging in changes from other fork

bringing all the code i can into my own fork for future use.