Broke up plugin into logical chunks