revising contol functionality