renamed some methods. compose() now can work recursively (still testing it). cleaned up some algorithms, etc