smoke implemented