altered constructor