i hate the added fees

If you use sufficently large inputs that are old enough you dont have to pay a fee. Its called 1 bitcoinday IIRC, thats 1 bitcoin as input which is at least 1 day old. A transaction with such an input results in a priority large enough to let you skip the fee. This will of course not work allways. E.g. miners could sort by fee per byte instead of priority easily and only take the priority as a 2nd sorting factor when deciding which TX to put into the block.