General idea was implemented