finished interface with spark