basic & overloaded constructor