Moved WP logic to new models (more tightly coupled functionality).