first version - just interface