move functors to common