Untested

Parts only

Need cleaned up