updated my horrible factoring method... it's okay, i never ever ever use that one...