switched to OO