custom size constructor