updates and added functions