This looks promising. all parts working. need to optimize parameters and test