get rid of static methods as we need the constructor