Fully working code. Requires full unicode support in terminal