changed back to functions