moving requires out of delegate call