switched from overriding 'constructor' to 'initialize' to follow best practices