Did some cleanup and restructure. Not sure if it might be too much change for upstream but at the changes are at least good for myself to understand force better and to get it to run on DartVoid easier.