TODO: make it to look good and go on