modified with some stylization