Move the 'require' statements into abstract factory