+ more abstraction to box2d