Func::implement instead of constructor