basic functions ported