Unfinished code, all added code has been commented out since it does not work yet.