OO version, works better.