type distribution implemented