used self instead of static