note potential bug with registering factory method factory...