Its not pretty but...