1. add icons
2. re-implementation all
3. almost function is doing

todo - fix float point calculation bug