much nicer with some styling
now with some documentation