The first implementation
Added graphics