controller as syntax
use facotry