constructor accepts inital values