Cleaned and updated