+ advanced manipulation functions