removed self construct