1. updated with graphics and code