why this is needed?