Add most of functionality