Terrifying amounts of smelly code, needs lots of debugging