implemented throw

however its broken, you cant throw a particular value at an object
refactored errors, errored-out signals, half implemented new