updated: simpler