this method is only used internally, maybe prefix it with an underscore?