reworked exposed api