Move the functionality out