more oop style :+1: