removed factory method, some additional advances in properties