move public functions ahead