added more details on implementation