ZVISION: More complete engine implementation

Please use CamelCase here, since you're using CamelCase in all other places (i.e. paint_rect -> paintRect)