improved source api