merging anthony's ideas into my own branch