added missing implementations of abstract functions