real base functionality