Separate internal and external framework API