add service pattern + fix UI