updated v2 approach