added __construct functions