change interface, add annotations, v1.0.3