funciton updates; bugs fixed