Initial api rework