added informal specification