small changes + alternative pattern