very ugly but first running version