trading OO for this