Writing dynamic plugins