Constructor logic