Откройте уже документацию! Или воспользуйтесь поиском по форуму.
Большая часть, Вами описанного, реализована в программе или пользователями.