- reworked some internals methods not meant to be publicly called