needs testing

horrible commit, too much 'stuff'