better default constructor handling and more comments