divides constructor logic