This is an internal implementation detail - should be private imo