Added basis for abstract WM classes - will flesh out so we can actually get functionality working