position and len is optional