adding alot of logic without tests. shame shame shame
comits