virtual constructor : l1