better options support and passing event to track-function