more object-oriented
fuck