Got it working, still needs bug fixes and touch ups