removed empty constructor requirement