add V2 with methods