Finally got a tower algo that semi-doesn't suck too much.