Restructured idea and got a lot more working now