update, cleaned up