it does all the things, but it very ugly