Working Version. No GUI atm.