made assemblyline use Observer pattern