demo works. ugly, but works.