Цеж готовая библиотека. Я имею ввиду как реализуется, если самому писать? дело в том, что когда сам напишешь, то становятся понятны некоторые "фишки" и особенности - почему именно так, а не эдак.
П.С. Хотя, если смотреть в исходники, то писать с нуля программу без готовых библиотек - уйдет год